import { Callout } from "nextra/components";

# `Data`

An object produced by Puck describing the shape of content.

```json copy
{
  "content": [
    {
      "type": "HeadingBlock",
      "props": {
        "id": "HeadingBlock-1234",
        "title": "Hello, world"
      }
    }
  ],
  "root": { "props": { "title": "Puck Example" } },
  "zones": {}
}
```

## Params

| Param                 | Example                                  | Type                                                             | Status   |
| --------------------- | ---------------------------------------- | ---------------------------------------------------------------- | -------- |
| [`content`](#content) | `content: []`                            | [ComponentData](/docs/api-reference/data-model/component-data)[] | Required |
| [`root`](#root)       | `root: { props: { title: "My page" } }`  | [RootData](/docs/api-reference/root-data)                        | Required |
| [`zones`](#zones)     | `zones: { "HeadingBlock-123:zone": [] }` | Object                                                           | -        |

### `content`

An array of [ComponentData](/docs/api-reference/data-model/component-data) objects representing the component instances in the default content region.

```json {2-9} copy
{
  "content": [
    {
      "type": "HeadingBlock",
      "props": {
        "id": "HeadingBlock-1234",
        "title": "Hello, world"
      }
    }
  ],
  "root": {},
  "zones": {}
}
```

### `root`

An object describing data for the [`root` config](/docs/api-reference/configuration/config#root). An instance of [`RootData`](/docs/api-reference/root-data).

```json {3-7} copy
{
  "content": [],
  "root": {
    "props": {
      "title": "My page"
    }
  },
  "zones": {}
}
```

### `zones`

<Callout>
  This parameter will soon be deprecated, as DropZones have been replaced by
  [`slot` fields](/docs/api-reference/fields/slot). For migration notes, see
  [these docs](/docs/guides/migrations/dropzones-to-slots).
</Callout>

An object describing nested content regions for each [DropZone](/docs/api-reference/components/drop-zone).

#### `zones[zoneKey]`

An array of [ComponentData](/docs/api-reference/data-model/component-data) objects representing the components instances in a particular DropZone.

`zoneKey` is a compound of the component `id` and [DropZone `zone`](/docs/api-reference/components/drop-zone#zone).

```json {5-13} copy showLineNumbers
{
  "content": [],
  "root": {},
  "zones": {
    "HeadingBlock-1234:my-content": [
      {
        "type": "HeadingBlock",
        "props": {
          "id": "HeadingBlock-1234",
          "title": "Hello, world"
        }
      }
    ]
  }
}
```
